package com.youpingou.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

import java.io.Serializable;
import java.security.Timestamp;

@TableName(value = "tb_order")
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class Order{
    // 订单主键
//    @TableId(type = IdType.AUTO)
//    private Integer id;
    //创建时间
    @TableField(value="created_at")
    @JsonProperty("shr_name")
    private Timestamp createdAt;
    //更新时间
    @TableField(value="updated_at")
    @JsonProperty("shr_name")
    private Timestamp updatedAt;
    //订单编号
    @TableField(value="sn")
    private String sn;

    /**
     * 收货人的信息都在Address表中，此处能不能只写addressId？不记录收货人的详细信息？
     * 答：不行的，为什么呢？
     *  下单的需要记录当前订单的邮寄地址
     */

    //收货人姓名
    @TableField(value="shr_name")
    @JsonProperty("shr_name")
    private String shName;
    //收货人电话
    @TableField(value="shr_mobile")
    @JsonProperty("shr_mobile")
    private String shrMobile;
    //收货人省份
    @TableField(value="shr_province")
    @JsonProperty("shr_province")
    private String shrProvince;
    //收货人城市
    @TableField(value="shr_city")
    @JsonProperty("shr_city")
    private String shrCity;
    //收货人县
    @TableField(value="shr_area")
    @JsonProperty("shr_area")
    private String shrArea;
    //收货人详细地址
    @TableField(value="shr_address")
    @JsonProperty("shr_address")
    private String shrAddress;
    //订单状态，0:未支付、1:已支付、等待发货、2:已发货、等待收货 3:已收货、等待评论 4:已结束 5:申请售后
    @TableField(value="status")
    @JsonProperty("status")
    private Integer status;
    //支付时间
    @TableField(value="pay_time")
    @JsonProperty("pay_time")
    private String payTime;
    //邮寄时间
    @TableField(value="post_time")
    @JsonProperty("post_time")
    private String postTime;
    //用户id   下单的人和收获的人 可能不是同一个人，可能收货人都没有淘宝、京东账号
    @TableField(value="user_id")
    @JsonProperty("user_id")
    private String userId;
    @TableField(exist = false)
    private User user;
    //订单总价
    @TableField(value="total_price")
    @JsonProperty("total_price")
    private Double totalPrice;
}